<?php
class AdministrationController extends Controller
{
	/****
		$tabUtilisateurs;
		$tabMessages;
		$active;
		$infoRech
	****/
	
	function index($cond=null) //page accessible uniquement aux administrateurs
	{
		//si un utilisateur simple tente d'accéder à cette page
			if (!isset($_SESSION['active'])) 
			{
				$this->e404('Vous n\'&ecirc;tes pas autoris&eacute; &agrave; acc&eacute;der &agrave cette page');
			}
			elseif($_SESSION['active'] == false || ($_SESSION['active'] == true && $_SESSION['typeMembre'] != 'admin'))
			{
				$this->e404('Vous n\'&ecirc;tes pas autoris&eacute; &agrave; acc&eacute;der &agrave cette page');
			}

		//Pour les admins
			else //si l'utilisateur utilise une session administrateur
			{
				$types = array(
				'user'  => 'utilisateur',
				'temp'  => 'temporaire',
				'admin' => 'administrateur');
				$typesToBd = array(
				'utilisateur' 	 => 'user',
				'temporaire' 	 => 'temp',
				'administrateur' => 'admin');

				$this->loadModel('User');
				$this->infoRes = '';
				$this->infoAction = '';

				if($this->request->data) //si données reçu par le formulaire de recherche personnalisé
				{
					
					//récupération des données du formulaire
					$data = $this->request->data;
					
					// si c'est une recheche personnalisée
					if(isset($data->option))
					{
						$option = $data->option;
						$contrainte = $data->contrainte;
						//recherche dans la bd
						
						if($option == 'idMembre')
						{
							//recherche d'un id unique
							$membres = $this->User->findFirst(array(
								'conditions' => array('idMembre' => $contrainte)
								));
							$membres = array( 0 => $membres);
						}
						elseif($option == 'typeMembre')
						{
							$cont = $contrainte;
							if(isset($typesToBd[$cont]))
								$cont = $typesToBd[$contrainte];

							//recherche d'un id unique
							$membres = $this->User->find(array(
								'conditions' => array('typeMembre' => $cont)
								));
						}
						else
						{
							//recherche de contenu
							//ex: SELECT * FROM users WHERE login LIKE '%monLogin%'; //tout les utilisateurs dont le login contient 'monLogin'
							$membres = $this->User->find(array(
									'conditions' => $option.' LIKE \'%'.$contrainte.'%\''
									));
						}

						$this->infoRes = $option.' : \''.$contrainte.'\' => ';//.count($membres);
					}
					//Si c'est une actions
					else{
						
						$action = $data->action;
						$ids = $data->id;

						switch ($action) {
							case 'sendMsg':
								
								break;
							
							case 'sendMail':
								
								break;

							//Suppression des utilisateurs sélectionnés
							case 'suppr':

								$idmemb = '';
								foreach ($ids as $key => $value) 
								{
									if($key == 0)
										$idmemb .= "'$value'";
									else
										$idmemb .= ", '$value'";
								}

								$idPhotosTemp = $this->User->executeSql('SELECT idPhoto FROM photos WHERE idMembre IN ('.$idmemb.');');
								var_dump($idPhotosTemp);
								$idPhotos = array();
								foreach ($idPhotosTemp as $value) {
									foreach ($value as $value2) {
										$idPhotos[] = $value2;
									}
								}
								var_dump($idPhotos);
								/*$this->User->executeSql('DELETE FROM tag_photo WHERE idPhoto IN ('.implode(', ', $idPhotos).');');
								$this->User->executeSql('DELETE FROM commentaires WHERE idMembre IN ('.$idmemb.');');
								$this->User->executeSql('DELETE FROM photos WHERE idMembre IN ('.$idmemb.');');
								$this->User->executeSql('DELETE FROM albums WHERE idMembre IN ('.$idmemb.');');
								$this->User->executeSql('DELETE FROM users WHERE idMembre IN ('.$idmemb.');');*/
								$this->infoAction = '<br/>'.count($ids).' Utilisateur(s) supprim&eacute;(s)!';

								break;

							default:
								# code...
								break;
						}
						$membres = $this->User->find('');

					}
				}
				else //affichage de tous les utilisateurs (aucune contrainte sauf l'ordre d'affichage)
				{
					$this->active = array();

					//si aucune condition => orde par id croissant
					if($cond==null)
					{
						$this->active['idMembre-asc'] = 'active';
						$membres = $this->User->find('');
					}
					else //condition d'ordonnancement
					{
						$this->active[$cond] = 'active';
						$cond = preg_replace('/-/', ' ', $cond);
						$membres = $this->User->find(array(
							'order by' => $cond
							));
					}
					//$this->infoRes = count($membres);
				}

				//remplissage du tableau
				$nbUtil = count($membres);

				//affichage des utilisateurs
				$this->tabUtilisateurs = '';

				foreach ($membres as $key => $value) 
				{
					if($value != false) //si au moins un résultat
					{
						$this->tabUtilisateurs .= '<tr>';

						foreach ($value as $column => $value2) 
						{
							if($column != 'mdp' && $column != 'avatar' && $column != 'token')

								if($column == 'dateInscription')
								{
									$this->tabUtilisateurs .= '<td>'.$this->User->editDate($value2).'</td>';
								}
								elseif($column == 'typeMembre')
								{
									$type = $types[$value2];

									$this->tabUtilisateurs .= '<td>'.$type.'</td>';

									if($value2 == 'admin')
										$this->admin = true;
									else
										$this->admin = false;
								}
								elseif ($column == 'idMembre') 
								{
									$this->idm = $value2;
									$this->tabUtilisateurs .= '<td>'.$value2.'</td>';
								}
								else
									$this->tabUtilisateurs .= '<td>'.$value2.'</td>';
						}

						//la check box a comme valeur l'id du membre
						$chbox = "<input type='checkbox' name='id[]' value='$this->idm'>";
						//pas de possibilité de changement pour un administrateur
						//=> l'admin ne peut pas se supprimer lui même.
						if($this->admin)
							$chbox = '';

						$this->tabUtilisateurs .= "<td> $chbox </td>";
						$this->tabUtilisateurs .= '</tr>';
					}
					else // si aucun résultat
					{
						$nbUtil = 0;
					}

				}//fin foreach
				$this->infoRes .= '<span class="badge badge-success">'.$nbUtil."</span> utilisateur(s)".$this->infoAction;
			}
	}//fin index

	
}

?>